const add = {
	//namespaced:true,
	state : {
	        goods : []
	    },
	    mutation:{
	        //不存在就执行add
	        add(state,payload){state.goods.push(payload)},
	        //存在就执行++
	        and(state,payload){state.goods[payload].num++;
	        state.goods = JSON.parse(JSON.srtingify(state.goods))},
	        //--方法
	        minus(state,payload){state.goods[payload].num--;
	        state.goods = JSON.parse(JSON.stringify(state,goods))},
	        //删除
	        del(state,payload){state.goods.splice(payload,1)}
	    },
	    action : {
	        //第一个参数是为了通过context.state方法获取，第二个参数只是接收参数的，可以是随便的名字
	      add(context,payload){
	      //判断商品是否存在
	      var ind = context.state.goods.findIndex(item=>item.id === payload.id)
	      if(ind > -1){
	          //如果存在就调用add方法
	          context.commit('and',ind)
	      }else{
	          //如果不存在就将商品添加到页面,并给这个对象添加一个num的属性
	          context.commit('add',{...payload,num:1})
	      }
	      } ,
	      //数量--按钮
	  minus(context,payload) {
	      var ind = context.state.goods.finIndex(item=>item.id === payload.id)
	      if(ind > -1){
	          //当商品数量小于1时再次点击就执行del这个方法
	          if(context.state.goods[ind].num-1 === 0){
	            context.commit('del',ind)  
	          }else{
	              //否则就执行--的方法
	            context.commit('minus',ind)  
	          }
	      }
	    }
	},
	//这里有一个问题就是合计页面没有办法实时更新数据所以需要用到getters计算属性
	getters:{
	    allMoney(state){
			var m=0;
			for(var i = 0; i< state.goods.length; i++){
				m += state.goods[i].num * state.goods[i].price
			}
			return m;
			
			}
		}  
}
export default add;